package main

import (
	"fmt"
	"strings"
)

func main() {
	//fmt.Printf("%q\n", strings.Split("a,b,c", ","))
	//fmt.Printf("%q\n", strings.Split("a man a plan a canal panama", "a "))
	//fmt.Printf("%q\n", strings.Split(" xyz ", ""))
	//fmt.Printf("%q\n", strings.Split("", "Bernardo O'Higgins"))
	//["a" "b" "c"]
	//["" "man " "plan " "canal panama"]
	//[" " "x" "y" "z" " "]
	//[""]

	//SplitAfter 在 sep 的每个实例之后将 s 切片为所有子字符串，并返回这些子字符串的切片。
	//
	//如果 s 不包含 sep 并且 sep 不为空，则 SplitAfter 返回长度为 1 的切片，其唯一元素是 s。
	//
	//如果 sep 为空，则 SplitAfter 在每个 UTF-8 序列之后拆分。 如果 s 和 sep 都为空，则 SplitAfter 返回一个空切片。
	//
	//它等效于计数为 -1 的 SplitAfterN。
	//["a," "b," "c"]
	//fmt.Printf("%q\n", strings.SplitAfter("a,b,c", ","))

	//SplitN 将 s 分割成由 sep 分隔的子字符串，并返回这些分隔符之间的子字符串的一部分。
	//
	//计数确定要返回的子字符串数：
	//n > 0：最多n个子串； 最后一个子串将是未拆分的余数。
	//n == 0：结果为零（零子串）
	//n < 0：所有子串
	//["a" "b" "c"]
	fmt.Printf("%q\n", strings.SplitN("a,b,c", ",", -1))
	//[]
	fmt.Printf("%q\n", strings.SplitN("a,b,c", ",", 0))
	//["a,b,c"]
	fmt.Printf("%q\n", strings.SplitN("a,b,c", ",", 1))
}
